var util = require('util'); 
function Base() { 
    this.name = 'base'; 
    this.base = 1991; 
    this.sayHello = function() { 
    console.log('Hello ' + this.name); 
    }; 
} 
Base.prototype.showName = function() { 
    console.log(this.name);
}; 
function Sub() { 
    this.name = 'sub'; 
    this.base = 1998;
} 
util.inherits(Sub, Base); 
var objBase = new Base(); 
var objSub = new Sub(); 

objBase.showName(); 
objBase.sayHello(); 
console.log(objBase); 

objSub.showName(); 
//  objSub.sayHello(); Error!
console.log(objSub); 

// >base
//  Hello base
//  Base { name: 'base', base: 1991, sayHello: [Function] }
//  sub
//  Sub { name: 'sub', base: 1998 }


// 注意：Sub 仅仅继承了Base 在原型中定义的函数，而构造函数内部创造的 base 属性和 sayHello 函数都没有被 Sub 继承。
//      同时，在原型中定义的属性不会被console.log 作为对象的属性输出。